/**
 * 用于编写api方法
 * api url 统一在urls.js中声明导出使用，与方法分开
 */
import { ajax } from '@jecloud/utils';
import {
  API_Login_AccountLogin,
  API_Login_SendCode,
  API_Login_NodeLogin,
  API_Login_ResetPassword,
  API_Login_Logout,
  API_Login_LoadPlans,
  API_Login_CheckCaptcha,
  API_RBAC_EDIT_LOGON_PASSWORD,
  API_RBAC_CHECK_ACCOUNT,
  API_RBAC_GET_PICTURE,
} from './urls';
/**
 * 用户账号登录
 * @export
 * @param {Object} params
 * @return {Promise}
 */
export function AccountLogin(params) {
  return ajax({ url: API_Login_AccountLogin, params, token: false }).then((info) => {
    if (info) {
      return info;
    } else {
      return Promise.reject(info);
    }
  });
}
/**
 * 发送验证码
 * @export
 * @param {Object} params
 * @return {Promise}
 */
export function LoginSendCode(params) {
  return ajax({ url: API_Login_SendCode, params, token: false }).then((info) => {
    if (info) {
      return info;
    } else {
      return Promise.reject(info);
    }
  });
}
/**
 * 动态密码登录
 * @export
 * @param {Object} params
 * @return {Promise}
 */
export function DynamicNodeLogin(params) {
  return ajax({ url: API_Login_NodeLogin, params, token: false }).then((info) => {
    if (info) {
      return info;
    } else {
      return Promise.reject(info);
    }
  });
}
/**
 * 校验验证码
 * @export
 * @param {Object} params
 * @return {Promise}
 */
export function CheckCaptcha(params) {
  return ajax({ url: API_Login_CheckCaptcha, method: 'GET', params, token: false }).then((info) => {
    if (info) {
      return info;
    } else {
      return Promise.reject(info);
    }
  });
}
/**
 * 忘记密码后重置密码
 * @export
 * @param {Object} params
 * @return {Promise}
 */
export function ForgetResetPassword(params) {
  return ajax({ url: API_Login_ResetPassword, params, token: false }).then((info) => {
    if (info) {
      return info;
    } else {
      return Promise.reject(info);
    }
  });
}

/**
 * 退出登录-注销用户
 * @export
 * @param {Object} params
 * @return {Promise}
 */
export function AccountLogout() {
  return ajax({ url: API_Login_Logout, method: 'GET' }).then((info) => {
    if (info) {
      return info;
    } else {
      return Promise.reject(info);
    }
  });
}
/**
 * 获取登录方案配置
 * @export
 * @param {Object} params
 * @return {Promise}
 */
export function GetLoginPlans(params) {
  return ajax({ url: API_Login_LoadPlans, params, token: false }).then((info) => {
    if (info) {
      return info;
    } else {
      return Promise.reject(info);
    }
  });
}
/**
 * 修改密码
 * @export
 * @param {Object} params
 * @return {Promise}
 */
export function editPassword(params, token) {
  return ajax({
    url: API_RBAC_EDIT_LOGON_PASSWORD,
    params,
    headers: { authorization: token },
  }).then((info) => {
    if (info.success) {
      return info;
    } else {
      return Promise.reject(info);
    }
  });
}
/**
 * 检测当前登录用户，目前包括当前用户是否修改过默认密码
 * @export
 * @param {Object}
 * @return {Promise}
 */
export function checkAccount(token) {
  return ajax({
    url: API_RBAC_CHECK_ACCOUNT,
    method: 'GET',
    headers: { authorization: token },
  }).then((info) => {
    if (info) {
      return info;
    } else {
      return Promise.reject(info);
    }
  });
}
/**
 * 根据类型获取基础配置图片
 * @export
 * @param {Object}
 * @return {Promise}
 */
export function getPictureByType(params) {
  return ajax({
    url: API_RBAC_GET_PICTURE,
    method: 'GET',
    params,
    token: false,
  }).then((info) => {
    if (info) {
      return info;
    } else {
      return Promise.reject(info);
    }
  });
}
